pcb development circuit software development standard pcb assembly electronics software design software development testing pcb layout software development manufacturing contract manufacturing software development process outsourcing